package com.fengxu.nio.introduction;

import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;

// NIO客户端
public class NIOClient {

    public static void main(String[] args) throws Exception {
        // 初始化一个网络通道
        SocketChannel socketChannel = SocketChannel.open();
        // 设置其为非阻塞模式
        socketChannel.configureBlocking(false);
        // connect 当处于异步连接且连接尚未完成时会返回false
        if(socketChannel.connect(new InetSocketAddress("127.0.0.1",6666)) == false){
            // 判断连接是否完成，未完成时可以做一些事情
            while (socketChannel.finishConnect() == false){
                System.out.println("客户端正在连接读取器,但连接尚未完成，此时我可以做一些事!");
            }
        }
        // 当连接完成后
        // 将发生的字符写入buffer中
        ByteBuffer byteBuffer = ByteBuffer.wrap("Hello World".getBytes());
        // 将buffer中的值写入通道
        socketChannel.write(byteBuffer);
        // 防止客户端关闭
        System.in.read();

    }
}
